SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

CREATE PROCEDURE [dbo].[SP_TXMVTO_INTE_I03]
/*-------------------------------------------------------------------*/    
/*----- Empresa           : OFISIS S.A.                          ----*/    
/*----- Cliente           : OFISIS S.A.                          ----*/    
/*----- Sistema           : Contabilidad                         ----*/    
/*----- Modulo            : Empresa                              ----*/    
/*----- Programa          : Ejecucion Procesos Cierre en Batch   ----*/    
/*-----                     despues Pase Definitivo/Reversion    ----*/    
/*----- Nombre            : SP_TXMVTO_INTE_I03                   ----*/    
/*----- Script            : TXMVTO_CNTB                          ----*/    
/*----- Desarrollado por  : Gustavo Espinoza Espinoza            ----*/    
/*----- Fecha             : 28/11/2003                           ----*/    
/*----- Base de Datos     : MS SQL Server                        ----*/    
/*----- Version BD        : 8.0                                  ----*/    
/*-------------------------------------------------------------------*/    
/*-------------------------------------------------------------------*/    
/*---- Modificado 1 por     :  YMT                                  ----*/    
/*---- Fecha Modificaci>n   :  invoca redondeo, gestion, para numero de proceso        ----*/    
/*---- Detalle Modificaci>n :                                    ----*/    
/*-------------------------------------------------------------------*/    
/*-------------------------------------------------------------------*/    
/*---- Modificado 2 por     :  PDGV                              ----*/    
/*---- Detalle Modificaci>n :  invoca procedure de dif de cambio ----*/    
/*---- Fecha Modificaci>n   :  25/10/2004                        ----*/    
/*-------------------------------------------------------------------*/    
/*-------------------------------------------------------------------*/    
/*---- Comentarios: Valida Fecha de Proceso                  ----*/    
/*---- Drop Trigger TD_TXMVTO_CNTB_D01   COMMIT                  ----*/    
/*-------------------------------------------------------------------*/    
/*-------------------------------------------------------------------*/    
/*----- Drop proc SP_TXMVTO_INTE_I03                             ----*/    
/*----- Grant all on SP_TXMVTO_INTE_I03 to PUBLIC                ----*/    
/*----- exec SP_TXMVTO_INTE_I03 '01','OFITESO',1,'PAS'            ----*/    
/*-------------------------------------------------------------------*/    
 @ISCO_EMPR           TD_VC_002,
 @ISCO_USUA           TD_VC_008,
 @IDFE_USUA           TD_DT_001,
 @ISCO_SIST           TD_VC_008,
 @INNU_PROC           TD_IN_001,
 @ISTI_PROC           TD_VC_003  --- (PAS)Pase Definitivo / (REV)Reversion 

AS    
Declare    
@CNNU_CNTB_EMPR       TD_IN_001,    
@CSCO_UNID_CNTB       TD_VC_003,    
@CNNU_ANNO            TD_IN_004_ANNO,    
@CNNU_MESE            TD_IN_002_MESE,    
@VNNU_FACT_REDO       TD_NU_015_006,    
    
@VSST_GEST_LINE      TD_VC_001,    
@VSST_ASIE_GEST      TD_VC_003,    
@VSCO_OPRC_GEST      TD_VC_003,    
@VSNU_ASTO_GEST      TD_VC_010,   
@VSST_ASIE_DFCA      TD_VC_003,  
@VSST_DFCA_LINE      TD_VC_001  
    
Begin Tran  SP_TXMVTO_INTE_I03    
    
  Declare CU_TXMVTO_INTE_I03_1 Cursor For    
  Select Distinct NU_CNTB_EMPR, CO_UNID_CNTB, NU_ANNO, NU_MESE    
  From   TXMVTO_INTE    
  Where  CO_EMPR = @ISCO_EMPR    
  And    NU_PROC = @INNU_PROC     
  Order  By NU_CNTB_EMPR, CO_UNID_CNTB, NU_ANNO, NU_MESE    
    
  Open CU_TXMVTO_INTE_I03_1    
  Fetch CU_TXMVTO_INTE_I03_1 Into    
        @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CNNU_ANNO, @CNNU_MESE    
    
  While  @@Fetch_status = 0    
  Begin    
   If @ISTI_PROC = 'PAS' --Pase Definitivo    
   Begin    
    Select @VNNU_FACT_REDO = IsNull(NU_FACT_REDO,0)    
    from   TTCNTB_EMPR    
    Where  CO_EMPR      = @ISCO_EMPR    
    And    NU_CNTB_EMPR = @CNNU_CNTB_EMPR    
    
    /*-- Redondeo ------------------------------------------------------------------------------------*/    
    Exec SP_TXMVTO_CNTB_I39 @ISCO_EMPR, @ISCO_USUA, @IDFE_USUA, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CNNU_ANNO,     
         @CNNU_MESE, @VNNU_FACT_REDO, @INNU_PROC    
    
    /*-- Gestion ------------------------------------------------------------------------------------*/    
    SELECT @VSST_GEST_LINE = ST_GEST_LINE,     
           @VSST_ASIE_GEST = ST_ASIE_GEST,   
           @VSST_ASIE_DFCA = IsNull(ST_ASIE_DFCA, ''),  
           @VSST_DFCA_LINE = IsNull(ST_DFCA_LINE, '')  
    FROM TMPARA_CONT    
    WHERE CO_EMPR = @ISCO_EMPR    
    And NU_ANNO = 9999   
  
    -- LLAMA A PROCEDURE DE DIF DE CAMBIO EN LINEA  
  
    If @VSST_DFCA_LINE = 'S'   
      Begin   
        Exec SP_TXMVTO_CNTB_I46 @ISCO_EMPR, @ISCO_USUA, @IDFE_USUA, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CNNU_ANNO,     
        @CNNU_MESE, @INNU_PROC, @VSST_ASIE_DFCA    
      End   
    
      If @VSST_ASIE_GEST = 'COP'    
      Begin    
    
        --verifica si esta activo la operacion de gestion    
        Select @VSCO_OPRC_GEST = Null    
    
        Select @VSCO_OPRC_GEST = IsNull(Max(T2.CO_OPRC_CNTB),Null)    
        From TTCNTB_EMPR T1, TTIDEN_OPER T2, TMOPRC_CNTB T3    
        Where T1.CO_EMPR = @ISCO_EMPR    
        And   T1.NU_CNTB_EMPR = @CNNU_CNTB_EMPR    
        And   T2.CO_EMPR = T1.CO_EMPR    
        And   T2.NU_CNTB_EMPR = T1.NU_CNTB_EMPR    
        And   T2.ID_OPRC = T1.ID_GEST    
        And   T3.CO_EMPR = T1.CO_EMPR    
        And   T3.CO_OPRC_CNTB = T2.CO_OPRC_CNTB    
        And   T3.TI_SITU = 'ACT'    
    
        If @VSCO_OPRC_GEST Is Not Null    
        Begin    
          Select @VSNU_ASTO_GEST = Null    
          Select @VSNU_ASTO_GEST = Max( Substring('0000000000',1, 10 -  Len(Convert( Varchar,NU_ULTI_ASTO + 1)) ) +     
                 Convert( Varchar,NU_ULTI_ASTO + 1) )    
          From TCFECH_PROC    
          Where CO_EMPR = @ISCO_EMPR    
          And   NU_CNTB_EMPR = @CNNU_CNTB_EMPR    
          And   CO_UNID_CNTB = @CNNU_CNTB_EMPR    
          And   NU_ANNO      = @CNNU_ANNO    
          And   NU_MESE      = @CNNU_MESE    
          And   CO_OPRC_CNTB = @VSCO_OPRC_GEST    
    
          If @VSNU_ASTO_GEST Is Not Null    
            Exec SP_TXMVTO_CNTB_I18 @ISCO_EMPR, @ISCO_USUA, @IDFE_USUA, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CNNU_ANNO,     
                                    @CNNU_MESE, @VSCO_OPRC_GEST, @VSNU_ASTO_GEST    
    
        End --( If @VSCO_OPRC_GEST Is Not Null )    
    
      End --( If @VSST_ASIE_GEST = 'COP' )    
      Else If @VSST_ASIE_GEST = 'ORI'    
      Begin    
        Exec SP_TXMVTO_CNTB_I40 @ISCO_EMPR, @ISCO_USUA, @IDFE_USUA, @CNNU_CNTB_EMPR, @CNNU_ANNO, @CNNU_MESE, @INNU_PROC    
      End --( If @VSST_ASIE_GEST = 'ORI' )    
    
    /*-- Mayorizacion --------------------------------------------------------------------------------*/    
    Exec SP_TASALD_EMPR_I01 @ISCO_EMPR, @ISCO_USUA, @IDFE_USUA, @CSCO_UNID_CNTB, @CNNU_CNTB_EMPR,    
         @CNNU_ANNO, @CNNU_MESE, @CNNU_ANNO, @CNNU_MESE    
      
   End --( If @ISTI_PROC = 'PAS' --Pase Definitivo )    
   Else If @ISTI_PROC = 'REV' --Reversion Solo Mayoriza    
   Begin    
     /*-- Mayorizacion --------------------------------------------------------------------------------*/    
     Exec SP_TASALD_EMPR_I01 @ISCO_EMPR, @ISCO_USUA, @IDFE_USUA, @CSCO_UNID_CNTB, @CNNU_CNTB_EMPR,    
          @CNNU_ANNO, @CNNU_MESE, @CNNU_ANNO, @CNNU_MESE    
   End    
    
   Fetch CU_TXMVTO_INTE_I03_1 Into    
         @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CNNU_ANNO, @CNNU_MESE    
   If @@error <> 0    
   Begin    
      Close CU_TXMVTO_INTE_I03_1    
      Deallocate CU_TXMVTO_INTE_I03_1    
      Rollback tran    
      Return    
    End    
  End    
  Close CU_TXMVTO_INTE_I03_1    
  Deallocate CU_TXMVTO_INTE_I03_1    
    
  If @@error <> 0    
  Begin    
    Close CU_TXMVTO_INTE_I03_1    
    Deallocate CU_TXMVTO_INTE_I03_1    
    Rollback tran    
    Return    
  End     
    
Commit Transaction    
    
/*--------------------------- Fin ---------------------------------*/    





GO
